/**
 * 给定一个字符串数组,将字母异位词组合在一起，字母异位词指字母相同，但是排列不同的字符串。
 * 示例:
 *  输入: ["eat", "tea", "tan", "ate", "nat", "bat"];
 *  输出: [
 *      ["ate", "eat", "tea"],
 *      ["nat", "tan"],
 *      ["bat"],
 *    ]
*/
function groupAnagrams (strs) {
    const obj = {};
    for (let i = 0; i < strs.length; i++) {
        const key = strs[i].split("").sort().join("");
        if (obj[key]) {
            obj[key].push(strs[i]);
        } else {
            obj[key] = [ strs[i] ];
        }
    }
    return Object.values(obj);
}

console.log(groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"]));